<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	
	<title>"Articulate Articules" Documentation</title>
	<style type="text/css">
	*{margin:0;padding:0;}
	body{font:12px/20px Verdana, Sans-Serif;text-align:center;color:#555;background:#eee;}
	h2{font:24px/30px Rockwell, Georgia, Serif;color:#444;border-bottom:1px solid #eee;margin:0 0 7px;}
	h3{font:bold 18px/30px 'Myriad Pro', Arial, Sans-Serif;color:#444;}
	p,pre,ul{margin:0 0 25px;}
	ul{margin-left:30px;}
	pre{width:850px;margin-left:auto;margin-right:auto;overflow:auto;}
	pre,code{color:#0d808e;}
	a{text-decoration:none;color:#222;}
	a:hover{text-decoration:underline;}
	a:focus{outline:none;}
	#container{width:920px;text-align:left;background:#fff;margin:30px auto;padding:20px;}
	#sitetitle,#subtitle{font:30px/30px Rockwell, Georgia, Serif;text-align:center;}
	#sitetitle{text-shadow:1px 1px 3px #333;color:#fff;background:#555;border-bottom:1px solid #444;padding:20px 0;}
	#subtitle{font-size:16px;font-style:italic;letter-spacing:1px;line-height:16px;color:#666;background:#ccc;border-top:1px solid #ddd;border-bottom:0;padding:8px 0;}
	#subtitle a{color:#444;text-decoration:none;}
	#navigation{background:#f9f9f9;border-top:1px solid #eee;border-bottom:1px solid #eee;margin:30px 0;}
	#navigation a{display:block;float:left;font:11px/11px Verdana, Sans-Serif;text-decoration:none;color:#666;border-left:1px solid #f9f9f9;border-right:1px solid #f9f9f9;padding:12px 25px;}
	#navigation a:hover,#navigation .current a{color:#444;background:#f4f4f4;border-color:#eee;}
	#slides div{width:920px;}
	.clear{clear:both;}
	.methods li{border-bottom:1px solid #eee;padding:10px 10px 10px 20px;}
	.methods li > code{margin-left:-10px;font-weight:700;}
	.methods li :last-child{margin:0;}
	.methods li.alt{background:#f9f9f9;border-top:1px solid #fff;}
	#navigation ul,.methods{list-style:none;margin:0;padding:0;}
	</style>
	
	<script type="text/javascript" src="admin/js/jquery.js"></script>
	<script type="text/javascript">
	$(function(){
		var $wrapper = $('#slidesWrapper'),
			$container = $('#slides'),
			$slides = $('div', $container),
			$nav = $('#navigation li'),
			changeSlide = function(index) {
				if (parseInt(index) < 0) return false;
				
				$wrapper.animate({
					height: $slides.eq(index).height()
				});
				
				$container.animate({ marginLeft: -(940*parseInt(index)) });
				$nav.removeClass('current').filter(':eq(' + index + ')').addClass('current');
				return true;
			},
			indexes = {
				install: 0,
				posts: 1,
				pages: 2,
				categories: 3,
				comments: 4,
				users: 5,
				uploads: 6,
				settings: 7,
				misc: 8
			};
		
		/* DEFAULT CSS STYLES */
		var oneWidth = $($slides['0']).width();
		$wrapper.css({
			width: oneWidth,
			overflow: 'hidden'
		});
		$container.width(((oneWidth+20)*$slides.length)-20);
		$slides.css({
			float: 'left',
			marginRight: '20px'
		});
		$($slides[$slides.length-1]).css({ marginRight: '0' });
		
		/* APPLY THE SLIDER */
		var start = $slides.filter('.start');
		if (start.length) changeSlide(indexes[start.attr('id')]);
		else changeSlide(0);
		
		$('a[href^=#]').click(function(){
			changeSlide(indexes[$(this).attr('href').replace('#', '')]);
			return false;
		});
		
		/* ALTERNATING LI'S */
		$('.methods li:odd').addClass('alt');
	});
	</script>
</head>
<body>

<div id="container">
	<h1 id="sitetitle">"<em>Articulate Articules</em>" Documentation</h1>
	<h2 id="subtitle">by <a href="http://themeforest.net/user/vasilios?ref=vasilios">Vasilios Anton</a> v1.0</h2>
	
	<div id="navigation">
		<ul>
			<li><a href="#install">Install</a></li>
			<li><a href="#posts">Posts</a></li>
			<li><a href="#pages">Pages</a></li>
			<li><a href="#categories">Categories</a></li>
			<li><a href="#comments">Comments</a></li>
			<li><a href="#users">Users</a></li>
			<li><a href="#uploads">Uploads</a></li>
			<li><a href="#settings">Settings</a></li>
			<li><a href="#misc">Miscellaneous</a></li>
		</ul>
		<br class="clear" />
	</div>
	
	<div id="slidesWrapper">
		<div id="slides">
			<!-- INSTALL -->
			<div id="install">
				<h2>Install</h2>
				<p>Installing Articulate Articles is very simple with the built in installer file. The basic steps taken are: creating a database, editing a couple settings, CHMODing a file, and running the installer. Okay, it's not that bad! Let's get started...</p>
				
				<p>Once you've downloaded Articulate Articles, the first thing you're going to want to do is create a MySQL database. If you don't know how to do this, <a href="http://www.tutorialtastic.co.uk/tutorial/creating_a_mysql_database">Tutorialtastic does a great job explaining</a>. Your next step is going to be to edit the settings on lines 6-13 in config.php. A sample of what the values might be are listed below.</p>
				
				<pre>$dbinfo = array(
	'database' => 'blog',
	'username' => 'root',
	'password' => 'cupcakes394',
	'host' => 'localhost'
);
$tablePrefix = 'aa_';
define('SECRET', 'IeNj0yt0sQu33zeflUFfym0nk1e$');</pre>
				
				<p><em>Please note that this is not the login information for the CMS, it's the login for the database; also, you will never have to remember "SECRET".</em> You can now close config.php and upload the <em>Articulate Articles</em> directory to your server, renaming it to anything you want. Whatever you make the path, that's the place where your blog will show up. So if you wanted it as the root of the site, you would just copy the files inside the Articulate Articles directory to your home directory (usually either <em>/public_html/</em> or <em>/www/</em>).</p>
				
				<p>If you're planning on using the uploader, you'll need to CHMOD the uploads directory to 777.</p>
				
				<p>There is one more step before you are able to run the installer. You will need to CHMOD the .htaccess to 666. You need to do this so that when you change to and from pretty permalinks the .htaccess file is automatically updated. You can now direct your browser to <em>http://website.com/install_directory/admin/install.php</em> &mdash; replacing website.com with your domain and install_directory with the directory you installed Articulate Articles in &mdash; and complete the options in the installer, and setup the default user/author. If, after you login, you receive an error telling you to delete the install file. Please do so, it's best to not keep it around if you don't need it.</p>
				
				<p>There you have it. I told you it would be quick and painless. Now, go play with your new CMS. Don't forget to check back at this page for help with the templates.</p>
				
				<h2>Upgrading</h2>
				<p>If you aren't running the current version of Articulate Articles, you can simply point your browser to <em>http://website.com/install_directory/admin/upgrade.php</em>. You should be redirected to the dashboard; at this time you can delete upgrade.php and install.php from your server if you see an error.</p>
				
				<p>Don't forget to follow all the other instructions to install! Like CHMODing the files and editing your settings.</p>
			</div>
			
			<!-- POSTS -->
			<div id="posts">
				<h2>Posts</h2>
				<p>Each post variable (usually $post) is an instance of the <code>post</code> class located in <code>includes/class.post.php</code>. Below are the properties and method of this class. They can be accessed the following ways: <code>$post->property_name</code> and <code>$post->method_name()</code>.</p>
				
				<h3>Properties</h3>
				<ul>
					<li>post_id/id</li>
					<li>post_title/title</li>
					<li>post_title_slug/title_slug</li>
					<li>post_date/date</li>
					<li>post_category/category</li>
					<li>post_content/content</li>
					<li>post_excerpt/excerpt</li>
					<li>post_status/status</li>
					<li>post_comments/comments</li>
					<li>post_author/author</li>
					<li>post_custom_fields/custom_fields</li>
					<li>post_comment_amount/comment_amount</li>
				</ul>
				
				<h3>Methods</h3>
				<ul class="methods">
					<li>
						<code>get_id() &middot; the_id()</code>
						<p>These two methods are global along every post/page/category/comment/user/upload instance. They all return the id or display the id, depending on which method you called.</p>
					</li>
					<li>
						<code>css($echo = true)</code>
						<p>Returns or echoes, if $echo is true, CSS rules for the div. The CSS is something along the lines of: <code>id="post-POST_ID" class="post"</code>.</p>
					</li>
					<li>
						<code>get_author_object()</code>
						<p>Returns the object of the author for that post. Read more about <a href="#users">authors/users</a> to get an idea of what this function can do for you.</p>
					</li>
					<li>
						<code>get_comment_amount($word = 'Comment')</code>
						<p>Returns the number of comments on that entry that have been approved and appends <code>$word</code> to the end of it with the correct ending. If there is zero or more than one comments, <code>$word</code> is changed to its plural form.</p>
					</li>
					<li>
						<code>get_comment_status()</code>
						<p>Returns a boolean value of either turn or false. This function is usually used when you're testing to see if comments are open.</p>
						
						<pre>if ($post->get_comment_status()) { //comments are open }
else { //comments are closed }</pre>
					</li>
					<li>
						<code>get_content($format = true) &middot; the_content($format = true)</code>
						<p>Both of these methods do the same thing, but <code>get_content</code> only returns the content, while <code>the_content</code> echoes it out. If <code>$format</code> is set to true, <code>$post->content</code> is auto paragraphed and abbreviation tags are added.</p>
					</li>
					<li>
						<code>get_custom_field($key = '')</code>
						<p>Returns the value of a specific custom field that was set in the admin panel. If the value doesn't exist or <code>$key</code> is left blank, false is returned.</p>
					</li>
					<li>
						<code>get_date($format = 'F j, Y @ g:ia') &middot; the_date($format = 'F j, Y @ g:ia')</code>
						<p>Format <code>$post->date</code> according to the <code>$format</code> variable. More information on date formats can be found in the <a href="http://php.net/date">PHP manual</a>.</p>
					</li>
					<li>
						<code>get_excerpt($format = true, $forced = true) &middot; the_excerpt($format = true, $forced = true)</code>
						<p>If <code>$forced</code> is set to true and <code>$post->excerpt</code> is empty, a excerpt is made from the post's content. It is then formatted if <code>$format</code> is set to true.</p>
					</li>
					<li>
						<code>get_mini_permalink()</code>
						<p>Returns the "mini permalink" of that post. It will either be <code>http://website.com/install_directory/?id=POST_ID</code> or <code>http://website.com/install_directory/id/POST_ID/</code> depending on what you set for the pretty permalinks option.</p>
					</li>
					<li>
						<code>get_permalink($format = true, $options = array()) &middot; the_permalink($format = true, $options = array())</code>
						<p>Returns or echoes (depending on which function is called) the permalink to the post. It will either be <code>http://website.com/install_directory/?entry=POST_SLUG</code> or <code>http://website.com/install_directory/entry/POST_SLUG/</code> depending on the pretty permalinks option.</p>
						
						<p>If <code>$format</code> is set to false, just the permalink URL is returned. Otherwise, it is formatted into an anchor tag with <code>$options</code> being used as the attributes. You call this method in the following way.</p>
						
						<pre>$post->the_permalink(true, array(
	'title' => 'Title for the link',
	'text' => 'Text for the link',
	'class' => 'classes applied for the link'
));</pre>
					</li>
					<li>
						<code>get_slug() &middot; the_slug()</code>
						<p>Returns/echoes out the post's slug. This is used with the get_permalink/the_permalink methods.</p>
					</li>
					<li>
						<code>get_status()</code>
						<p>Returns a boolean value if the post is either published (true) or a draft (false).</p>
					</li>
					<li>
						<code>get_title()/the_title()</code>
						<p>Returns/echoes out the post's title. The title is also run through <a href="http://php.net/htmlspecialchars">htmlspecialchars</a> before so that it can be safely used in link titles.</p>
					</li>
					<li>
						<code>the_author($options = array())</code>
						<p>Displays a link to the author's page using the the_permalink method found in the <a href="#users">user object</a>.</p>
					</li>
					<li>
						<code>the_categories($glue = ', ', $echo = true)</code>
						<p>Displays each category in a string that is separated by <code>$glue</code>. Each of the categories is formatted into a link using the the_permalink method found in the <a href="#categories">category class</a>. If <code>$echo</code> is set to true, this new string is echoed otherwise it's returned.</p>
					</li>
					<li>
						<code>the_comment_link($format = true, $options = array(), $echo = true)</code>
						<p>Grabs the permalink of the current post and appends #comments to the end of it. It will then return this string as is if <code>$format</code> is set to false. If $format is set to true, it is turned into an anchor tag using the $options array as the attributes. It works much in the same way as the the_permalink method does.</p>
						
						<p>Then, if $echo is set to true, this URL or anchor tag is displayed, otherwise the method returns it.</p>
					</li>
				</ul>
			</div>
			
			<!-- PAGES -->
			<div id="pages">
				<h2>Pages</h2>
				<p>Each page variable (usually $page) is an instance of the <code>page</code> class located in <code>includes/class.page.php</code>. Below are the properties and method of this class. They can be accessed the following ways: <code>$page->property_name</code> and <code>$page->method_name()</code>.</p>
				
				<h3>Properties</h3>
				<ul>
					<li>page_id/id</li>
					<li>page_title/title</li>
					<li>page_title_slug/title_slug</li>
					<li>page_date/date</li>
					<li>page_status/status</li>
					<li>page_custom_field</li>
				</ul>
				
				<h3>Methods</h3>
				<ul class="methods">
					<li>
						<code>get_id() &middot; the_id()</code>
						<p>These two methods are global along every post/page/category/comment/user/upload instance. They all return the id or display the id, depending on which method you called.</p>
					</li>
					<li>
						<code>get_content($format = true) &middot; the_content($format = true)</code>
						<p>Both of these methods do the same thing, but <code>get_content</code> only returns the content, while <code>the_content</code> echoes it out. If <code>$format</code> is set to true, <code>$page->content</code> is auto paragraphed and abbreviation tags are added.</p>
					</li>
					<li>
						<code>get_custom_field($key = '')</code>
						<p>Returns the value of a specific custom field that was set in the admin panel. If the value doesn't exist or <code>$key</code> is left blank, false is returned.</p>
					</li>
					<li>
						<code>get_date($format = 'F j, Y @ g:ia') &middot; the_date($format = 'F j, Y @ g:ia')</code>
						<p>Format <code>$page->date</code> according to the <code>$format</code> variable. More information on date formats can be found in the <a href="http://php.net/date">PHP manual</a>.</p>
					</li>
					<li>
						<code>get_permalink($format = true, $options = array()) &middot; the_permalink($format = true, $options = array())</code>
						<p>Returns or echoes (depending on which function is called) the permalink to the page. It will either be <code>http://website.com/install_directory/?p=PAGE_SLUG</code> or <code>http://website.com/install_directory/p/PAGE_SLUG/</code> depending on the pretty permalinks option.</p>
						
						<p>If <code>$format</code> is set to false, just the permalink URL is returned. Otherwise, it is formatted into an anchor tag with <code>$options</code> being used as the attributes. You call this method in the following way.</p>
						
						<pre>$page->the_permalink(true, array(
	'title' => 'Title for the link',
	'text' => 'Text for the link',
	'class' => 'classes applied for the link'
));</pre>
					</li>
					<li>
						<code>get_slug() &middot; the_slug()</code>
						<p>Returns/echoes out the page's slug. This is used with the get_permalink/the_permalink methods.</p>
					</li>
					<li>
						<code>get_status()</code>
						<p>Returns a boolean value if the page is either published (true) or a draft (false).</p>
					</li>
				</ul>
			</div>
			
			<!-- CATEGORIES -->
			<div id="categories">
				<h2>Categories</h2>
				<p>Each category variable (usually $category) is an instance of the <code>category</code> class located in <code>includes/class.category.php</code>. Below are the properties and method of this class. They can be accessed the following ways: <code>$category->property_name</code> and <code>$category->method_name()</code>.</p>
				
				<h3>Properties</h3>
				<ul>
					<li>category_id/id</li>
					<li>category_name/name</li>
					<li>category_slug/slug</li>
					<li>category_description/description</li>
					<li>category_post_amount/post_amount</li>
				</ul>
				
				<h3>Methods</h3>
				<ul class="methods">
					<li>
						<code>get_id() &middot; the_id()</code>
						<p>These two methods are global along every post/page/category/comment/user/upload instance. They all return the id or display the id, depending on which method you called.</p>
					</li>
					<li>
						<code>get_description($format = true) &middot; the_description($format = true)</code>
						<p>Both of these methods do the same thing, but <code>get_description</code> only returns the description, while <code>the_description</code> echoes it out. If <code>$format</code> is set to true, <code>$category->description</code> is auto paragraphed and abbreviation tags are added.</p>
					</li>
					<li>
						<code>get_name() &middot; the_name()</code>
						<p>Returns/echoes out the category's name.</p>
					</li>
					<li>
						<code>get_permalink($format = true, $options = array()) &middot; the_permalink($format = true, $options = array())</code>
						<p>Returns or echoes (depending on which function is called) the permalink to the category. It will either be <code>http://website.com/install_directory/?category=CATEGORY_SLUG</code> or <code>http://website.com/install_directory/category/CATEGORY_SLUG/</code> depending on the pretty permalinks option.</p>
						
						<p>If <code>$format</code> is set to false, just the permalink URL is returned. Otherwise, it is formatted into an anchor tag with <code>$options</code> being used as the attributes. You call this method in the following way.</p>
						
						<pre>$category->the_permalink(true, array(
	'title' => 'Title for the link',
	'text' => 'Text for the link',
	'class' => 'classes applied for the link'
));</pre>
					</li>
					<li>
						<code>get_post_amount()</code>
						<p>Returns the number of posts that are categorized under that category.</p>
					</li>
					<li>
						<code>get_slug() &middot; the_slug()</code>
						<p>Returns/echoes out the category's slug. This is used with the get_permalink/the_permalink methods.</p>
					</li>
				</ul>
			</div>
			
			<!-- COMMENTS -->
			<div id="comments">
				<h2>Comments</h2>
				<p>Each comment variable (usually $comment) is an instance of the <code>comment</code> class located in <code>includes/class.comment.php</code>. Below are the properties and method of this class. They can be accessed the following ways: <code>$comment->property_name</code> and <code>$comment->method_name()</code>.</p>
				
				<h3>Properties</h3>
				<ul>
					<li>comment_id/id</li>
					<li>comment_post_id/post_id</li>
					<li>comment_date/date</li>
					<li>comment_author/author</li>
					<li>comment_author_email/author_email</li>
					<li>comment_author_site/author_site</li>
					<li>comment_author_ip/author_ip</li>
					<li>comment_author_agent/author_agent</li>
					<li>comment_content/content</li>
					<li>comment_status/status</li>
				</ul>
				
				<h3>Methods</h3>
				<ul class="methods">
					<li>
						<code>get_id() &middot; the_id()</code>
						<p>These two methods are global along every post/page/category/comment/user/upload instance. They all return the id or display the id, depending on which method you called.</p>
					</li>
					<li>
						<code>css($echo = true)</code>
						<p>Returns or echoes, if $echo is true, CSS rules for the li. The CSS is something along the lines of: <code>id="comment-POST_ID" class="alt"</code>. The class on the comments alternated every time.</p>
					</li>
					<li>
						<code>get_author() &middot; the_author()</code>
						<p>Returns/echoes out the author's name.</p>
					</li>
					<li>
						<code>get_author_link($format = true, $options = array()) &middot; the_author_link($format = true, $options = array())</code>
						<p>Returns or echoes (depending on which function is called) the author's website.</p>
						
						<p>If <code>$format</code> is set to false or <code>$comment->author_site</code> is empty, the author's name is returned. Otherwise, it is formatted into an anchor tag with <code>$options</code> being used as the attributes. You call this method in the following way.</p>
						
						<pre>$comment->the_author_link(true, array(
	'title' => 'Title for the link',
	'text' => 'Text for the link',
	'class' => 'classes applied for the link'
));</pre>
					</li>
					<li>
						<code>get_content($format = true) &middot; the_content($format = true)</code>
						<p>Both of these methods do the same thing, but <code>get_content</code> only returns the content, while <code>the_content</code> echoes it out. If <code>$format</code> is set to true, <code>$comment->content</code> is auto paragraphed and abbreviation tags are added.</p>
					</li>
					<li>
						<code>get_date($format = 'F j, Y @ g:ia') &middot; the_date($format = 'F j, Y @ g:ia')</code>
						<p>Format <code>$comment->date</code> according to the <code>$format</code> variable. More information on date formats can be found in the <a href="http://php.net/date">PHP manual</a>.</p>
					</li>
					<li>
						<code>get_email() &middot; the_email()</code>
						<p>Returns/echoes out the comment author's email.</p>
					</li>
					<li>
						<code>get_gravatar($format = true, $options = array()) &middot; the_gravatar($format = true, $options = array())</code>
						<p>Returns or echoes (depending on which function is called) the <a href="http://en.gravatar.com/">Gravatar</a> for the comment.</p>
						
						<p>If <code>$format</code> is set to false, just the URL is returned. Otherwise, it is formatted into an image tag with <code>$options</code> being used as the attributes. You call this method in the following way.</p>
						
						<pre>$comment->the_gravatar(true, array(
	'size' => 32,
	'alt' => 'Alternate text for the Gravatar',
	'class' => 'classes applied for the link'
));</pre>

					</li>
					<li>
						<code>get_ip() &middot; the_ip()</code>
						<p>Returns/echoes out the author's ip.</p>
					</li>
					<li>
						<code>get_permalink($format = true, $options = array()) &middot; the_permalink($format = true, $options = array())</code>
						<p>Returns or echoes (depending on which function is called) the permalink to the comment. It will either be <code>http://website.com/install_directory/?entry=POST_SLUG#comment-COMMENT_ID</code> or <code>http://website.com/install_directory/entry/POST_SLUG/#comment-COMMENT_ID</code> depending on the pretty permalinks option.</p>
						
						<p>If <code>$format</code> is set to false, just the permalink URL is returned. Otherwise, it is formatted into an anchor tag with <code>$options</code> being used as the attributes. You call this method in the following way.</p>
						
						<pre>$comment->the_permalink(true, array(
	'title' => 'Title for the link',
	'text' => 'Text for the link',
	'class' => 'classes applied for the link'
));</pre>
					</li>
					<li>
						<code>get_post_object()</code>
						<p>Returns the object of the post for that comment. Read more about <a href="#posts">posts</a> to get an idea of what this function can do for you.</p>
					</li>
					<li>
						<code>get_status()</code>
						<p>Returns a boolean value if the comment is either approved (true) or still in moderation (false).</p>
					</li>
					<li>
						<code>get_website() &middot; the_website()</code>
						<p>Returns/echoes out the author's website. If one wasn't entered, an empty string is returned.</p>
					</li>
				</ul>
			</div>
			
			<!-- USERS -->
			<div id="users">
				<h2>Users</h2>
				<p>Each user variable (usually $user or $author) is an instance of the <code>user</code> class located in <code>includes/class.user.php</code>. Below are the properties and method of this class. They can be accessed the following ways: <code>$user->property_name</code> and <code>$user->method_name()</code>.</p>
				
				<h3>Properties</h3>
				<ul>
					<li>user_id/id</li>
					<li>user_username/username</li>
					<li>user_password/password</li>
					<li>user_email/email</li>
					<li>user_website/website</li>
					<li>user_nickname/nickname</li>
					<li>user_profile/profile</li>
					<li>user_ip/ip</li>
				</ul>
				
				<h3>Methods</h3>
				<ul class="methods">
					<li>
						<code>get_id() &middot; the_id()</code>
						<p>These two methods are global along every post/page/category/comment/user/upload instance. They all return the id or display the id, depending on which method you called.</p>
					</li>
					<li>
						<code>get_email() &middot; the_email()</code>
						<p>Returns/echoes out the user's email.</p>
					</li>
					<li>
						<code>get_nickname() &middot; the_nickname()</code>
						<p>Returns/echoes out the user's nickname. If the user didn't add one, an empty string is returned.</p>
					</li>
					<li>
						<code>get_password()</code>
						<p>Returns the user's encrypted password.</p>
					</li>
					<li>
						<code>get_permalink($format = true, $options = array()) &middot; the_permalink($format = true, $options = array())</code>
						<p>Returns or echoes (depending on which function is called) the permalink to the user. It will either be <code>http://website.com/install_directory/?user=USERNAME</code> or <code>http://website.com/install_directory/user/USERNAME/</code> depending on the pretty permalinks option.</p>
						
						<p>If <code>$format</code> is set to false, just the permalink URL is returned. Otherwise, it is formatted into an anchor tag with <code>$options</code> being used as the attributes. You call this method in the following way.</p>
						
						<pre>$user->the_permalink(true, array(
	'title' => 'Title for the link',
	'text' => 'Text for the link',
	'class' => 'classes applied for the link'
));</pre>
					</li>
					<li>
						<code>get_post_amount() &middot; the_post_amount()</code>
						<p>Returns/echoes out the number of published posts written by the user.</p>
					</li>
					<li>
						<code>get_profile($format = true) &middot; the_profile($format = true)</code>
						<p>Both of these methods do the same thing, but <code>get_profile</code> only returns the profile, while <code>the_profile</code> echoes it out. If <code>$format</code> is set to true, <code>$user->profile</code> is auto paragraphed and abbreviation tags are added. An empty string is returned for no profile being entered when creating the user.</p>
					</li>
					<li>
						<code>get_username() &middot; the_username()</code>
						<p>Returns/echoes out the user's username. Used with get_permalink.</p>
					</li>
					<li>
						<code>get_website($format = true, $options = array()) &middot; the_website($format = true, $options = array())</code>
						<p>Returns or echoes (depending on which function is called) the user's website. An empty string is returned for no website being entered at creation.</p>
						
						<p>If <code>$format</code> is set to false, just the website URL is returned. Otherwise, it is formatted into an anchor tag with <code>$options</code> being used as the attributes. You call this method in the following way.</p>
						
						<pre>$user->the_website(true, array(
	'title' => 'Title for the link',
	'text' => 'Text for the link',
	'class' => 'classes applied for the link'
));</pre>
					</li>
					<li>
						<code>display_name($echo = true)</code>
						<p>Returns/echoes out (if $echo is set to true) the user's nickname if not empty otherwise the username.</p>
					</li>
					<li>
						<code>the_email_link($options = array(), $echo = true)</code>
						<p>Returns or echoes (depending on if <code>$echo</code> is true) the user's email.</p>
						
						<p>If <code>$format</code> is set to false, just the email address is returned. Otherwise, it is formatted into an anchor tag with <code>$options</code> being used as the attributes. You call this method in the following way.</p>
						
						<pre>$user->the_email_link(array(
	'title' => 'Title for the link',
	'text' => 'Text for the link',
	'class' => 'classes applied for the link'
));</pre>
					</li>
				</ul>
			</div>
			
			<!-- UPLOADS -->
			<div id="uploads">
				<h2>Uploads</h2>
				<p>Each upload variable (usually $upload) is an instance of the <code>upload</code> class located in <code>includes/class.upload.php</code>. Below are the properties and method of this class. They can be accessed the following ways: <code>$upload->property_name</code> and <code>$upload->method_name()</code>.</p>
				
				<h3>Properties</h3>
				<ul>
					<li>upload_id/id</li>
					<li>upload_date/date</li>
					<li>upload_url/url</li>
				</ul>
				
				<h3>Methods</h3>
				<ul class="methods">
					<li>
						<code>get_id() &middot; the_id()</code>
						<p>These two methods are global along every post/page/category/comment/user/upload instance. They all return the id or display the id, depending on which method you called.</p>
					</li>
					<li>
						<code>get_date($format = 'F j, Y @ g:ia') &middot; the_date($format = 'F j, Y @ g:ia')</code>
						<p>Format <code>$upload->date</code> according to the <code>$format</code> variable. More information on date formats can be found in the <a href="http://php.net/date">PHP manual</a>.</p>
					</li>
					<li>
						<code>get_image($format = true, $options = array())</code>
						<p>Returns or echoes (depending on if <code>$echo</code> is true) the image.</p>
						
						<p>If <code>$format</code> is set to false, just the image address is returned. Otherwise, it is formatted into an image tag with <code>$options</code> being used as the attributes. You call this method in the following way.</p>
						
						<pre>$upload->the_image(array(
	'alt' => 'Alternative text for the image',
	'class' => 'classes applied for the link',
	'link' => true, // wraps the image in a link to the image URL
	'title' => 'Title for the link'
));</pre>
					</li>
				</ul>
			</div>
			
			<!-- SETTINGS -->
			<div id="settings">
				<h2>Settings</h2>
				<p>Settings are much more different than the other five tables. They are accessed through the <code>get_option()</code> function. You pass a single argument which is the setting's key, and are given back a value, nothing else.</p>
				
				<p>Valid keys:</p>
				<ul>
					<li>website</li>
					<li>install_path</li>
					<li>site_name</li>
					<li>timeoffset</li>
					<li>index_pagination</li>
					<li>archive_pagination</li>
					<li>pretty_permalinks - returns either true or false</li>
					<li>email_comments - returns either true or false</li>
					<li>rss_url</li>
					<li>site_path</li>
				</ul>
				
				<h3>RSS URL</h3>
				<p>Besides the last two keys, you should be familiar with them because that's what you saw on the installation file. The RSS URL will be formatted as either <code>http://wesbite.com/install_directory/feed.php</code> or as <code>http://website.com/install_directory/feed/</code> depending on the pretty permalinks setting.</p>
				
				<h3>Pretty Permalinks</h3>
				<p>SEO friendly URLs or what I like to call "pretty permalinks" is how the URLs are formatted. If this option is set to true (or "yes") there will be no query string in the URLs, aka no question marks. They look like it's directories in directories.</p>
				
				<h3>Grabbing a Setting</h3>
				<p>You simple call the get_option function and pass in one of the above keys:</p>
				<pre>&lt;?php $path = get_option('site_path'); ?&gt;</pre>
			</div>
			
			<!-- MISCELLANEOUS -->
			<div id="misc">
				<h2>Miscellaneous</h2>
				<p>In this section I'll explain all the little functions for grabbing each item and how to use the functions in the previous sections to display your website. Plus some other functions that just don't fit in anywhere else. Many of these functions can be found in the <code>includes/functions.theme.php</code> file.</p>
				
				<h3>Files</h3>
				<p>To make our lives easier, Articulate Articles comes with two very handy functions: <code>get_header()</code> and <code>get_footer()</code>. They do just what they say. They'll include the header and footer files for ease of inclusion.</p>
				
				<h3>Posts</h3>
				<p>There is a global variable named <code>$posts</code> when on the index, single, category, and search page. You can loop through these posts using the following code.</p>
				<pre>&lt;?php
if ($posts-&gt;total &gt; 0) {
	foreach($posts-&gt;items as $post) {
		// Code for each post.
	}
} else {
	// No posts found.
}
?&gt;</pre>
				
				<p>The main thing you should get from this example is that there are two properties on the <code>$posts</code> variable that are important: total and items. The total is the number of posts that were found given a certain MySQL WHERE statement. <code>$posts->items</code> is an array that contains each of these posts, which are all instances of the post class. This means that you can use all the <a href="#posts">post properties and methods</a> can be accessed from this new variable. In this case, <code>$post</code>.</p>
				
				<p>You can grab all the published posts using the get_posts function. There is only one parameter that can be passed and that is an options array. It contains MySQL statements that are formatted into a nice query when it's executed to grab the posts. Although, this function can take a second boolean parameter that tells the function to make sure the posts are published.</p>
				
				<pre>get_posts(array(
	'where' => '`post_title` = "Pie is Very Tasty"',
	'limit' => 1
));</pre>
				
				<p><em>Grabs all posts with the title "Pie is Very Tasty", and only selects the first row.</em></p>
				
				<h3>Pages</h3>
				<p>A <code>$pages</code> global variable is set when the browser is pointed to a specific page on the site. You access the page almost the exact same way as posts. The <a href="#pages">pages properties and methods</a> will then be available in the <code>$page</code> variable.</p>
				<pre>&lt;?php
if ($pages-&gt;total &gt; 0) {
	foreach($pages-&gt;items as $page) {
		// Code for each page. There is almost always one page.
	}
} else {
	// No pages found.
}
?&gt;</pre>
				
				<p>And there is of course a function that does the exact same thing for pages as it does for posts: get_pages. Same parameters and everything!</p>
				
				<h3>Categories</h3>
				<p>Same syntax for the looping, only this time you can call get_categories as the function to grab the categories. There is also a second function for retrieving a single category: get_category. This accepts two parameters. The first is the key to check and make sure it's value is equal to the second parameter.</p>
				
				<h3>Search Form</h3>
				<p>If you would like to display a search form on your site, and don't feel like hand coding it, just call the search_form() function and pesto! You now have a fully functioning search form. Also, there is a global variable, <code>$s</code>, which holds the search value.</p>
				
				<h3>Required Fields for the Comment Form</h3>
				<p>In order for comments to work, you <strong>must</strong> call the required_fields() function inside the form for comments. It will simply display two hidden inputs, so you won't need to worry about hiding them yourself.</p>
				
				<h3>Field Value for the Comment Form</h3>
				<p>If you want your visitors to be happy, you might want to display the value of their cookies so they won't need to type in their information every time they comment on your site. Simple add <code> value="&lt;?php echo field_value('NAME_OF_THE_INPUT'); ?&gt;"</code> to the input. For example, the name field might be this:</p>
				<pre>&lt;input type=&quot;text&quot; name=&quot;name&quot; id=&quot;name&quot; value=&quot;&lt;?php echo field_value('name'); ?&gt;&quot; /&gt;</pre>
				
				<h3>General "Loop"</h3>
				<p>Just so I can burn it into your head, the general "loop" for the items is as followed. You would simple need to replace a couple variables and everything should be fine.</p>
				<pre>&lt;?php
get_header();

if ($items-&gt;total &gt; 0) {
	foreach($items-&gt;items as $item) {
		// Code to do to each $item
		// Remember, to access properties you type: $item-&gt;property_name
		// and for methods it's: $item-&gt;method_name()
	}
} else {
	// No items. :(
}

get_footer();
?&gt;</pre>
				
				<h3>Methods Attached to $items</h3>
				<p>You can also check to see if the current selection requires pagination by typing <code>$items->needsPagination()</code>. This will return either true or false. For the actually pagination, you just call the pagination method: <code>$items->pagination()</code>. You can pass in the type you would want. This is either "words" or "numbers". The second parameter is for some options. Here's an example of how to display words and then numbers in between them.</p>
				
				<pre>&lt;?php
$items-&gt;pagination('words', array(
	'next' =&gt; ' &amp;middot; Next Page &amp;raquo;',
	'previous' =&gt; '&amp;laquo; Previous Page &amp;middot; ',
	'middle' =&gt; $posts-&gt;pagination('numbers', false, false),
	'forceMiddle' =&gt; true
));
?&gt;</pre>
				
				<p>Notice how when I called this method for the second time inside, I passed a third parameter. This third parameter tells the script to either echo the links (true) or just return them (false).</p>
			</div>
		</div>
	</div>
</div>

</body>
</html>